39#ifdef PREINIT_SUPPORTED
43#ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49#include "drv_digital_out.h"
50#include "drv_digital_in.h"
72#define SPITOI2C_CMD_WRITE 0x00
73#define SPITOI2C_CMD_READ 0x01
74#define SPITOI2C_CMD_READ_AFTER_WRITE 0x02
75#define SPITOI2C_CMD_WRITE_AFTER_WRITE 0x03
76#define SPITOI2C_CMD_READ_BUFFER 0x06
77#define SPITOI2C_CMD_SPI_CONFIG 0x18
78#define SPITOI2C_CMD_WRITE_REG 0x20
79#define SPITOI2C_CMD_READ_REG 0x21
80#define SPITOI2C_CMD_DEEP_POWER_DOWN 0x30
81#define SPITOI2C_CMD_READ_VERSION 0xFE
87#define SPITOI2C_REG_IO_CONFIG 0x00
88#define SPITOI2C_REG_IO_STATE 0x01
89#define SPITOI2C_REG_I2C_CLOCK 0x02
90#define SPITOI2C_REG_I2C_TO 0x03
91#define SPITOI2C_REG_I2C_STAT 0x04
92#define SPITOI2C_REG_I2C_ADR 0x05
110#define SPITOI2C_I2C_CLOCK_375_KHZ 5
111#define SPITOI2C_I2C_CLOCK_99_KHZ 19
112#define SPITOI2C_I2C_CLOCK_7p4_KHZ 255
113#define SPITOI2C_I2C_ADDR_127 0xFE
114#define SPITOI2C_I2C_TO_DISABLE 0x00
120#define SPITOI2C_I2C_STATUS_SUCCESS 0xF0
121#define SPITOI2C_I2C_STATUS_TARGET_NACK 0xF1
122#define SPITOI2C_I2C_STATUS_WRITE_NACK 0xF2
123#define SPITOI2C_I2C_STATUS_BUSY 0xF3
124#define SPITOI2C_I2C_STATUS_TIMEOUT 0xF8
125#define SPITOI2C_I2C_STATUS_DATA_COUNT 0xF9
131#define SPITOI2C_TIMEOUT_MS 3000
137#define SPITOI2C_NO_PIN_MASK 0x00
138#define SPITOI2C_PIN_0_MASK 0x01
139#define SPITOI2C_PIN_1_MASK 0x02
140#define SPITOI2C_PIN_2_MASK 0x04
141#define SPITOI2C_PIN_3_MASK 0x08
142#define SPITOI2C_PIN_4_MASK 0x10
143#define SPITOI2C_ALL_PINS_MASK 0x1F
144#define SPITOI2C_ALL_OUT_PINS_MASK 0x0F
150#define SPITOI2C_PIN_DIR_INPUT 0x00
151#define SPITOI2C_PIN_DIR_OUTPUT_PP 0x02
152#define SPITOI2C_PIN_DIR_OUTPUT_OD 0x03
153#define SPITOI2C_PIN_DIR_MASK 0x03
159#define SPITOI2C_I2C_READ_BIT 0x01
165#define SPITOI2C_SPI_CONFIG_LSB_FIRST 0x81
166#define SPITOI2C_SPI_CONFIG_MSB_FIRST 0x42
172#define SPITOI2C_DEEP_PDOWN_BYTE_0 0x5A
173#define SPITOI2C_DEEP_PDOWN_BYTE_1 0xA5
191#define SPITOI2C_MAP_MIKROBUS( cfg, mikrobus ) \
192 cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
193 cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
194 cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
195 cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
196 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
197 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
399 uint8_t *data_in, uint8_t in_len, uint8_t *data_out, uint8_t out_len );
418 uint8_t *data_in1, uint8_t in1_len, uint8_t *data_in2, uint8_t in2_len );
err_t spitoi2c_set_spi_config(spitoi2c_t *ctx, uint8_t spi_cfg)
SPI to I2C set spi config function.
uint8_t spitoi2c_get_int_pin(spitoi2c_t *ctx)
SPI to I2C get int pin function.
err_t spitoi2c_write_register(spitoi2c_t *ctx, uint8_t reg, uint8_t data_in)
SPI to I2C write register function.
void spitoi2c_deep_power_down(spitoi2c_t *ctx)
SPI to I2C deep power down function.
err_t spitoi2c_i2c_write(spitoi2c_t *ctx, uint8_t slave_addr, uint8_t *data_in, uint8_t len)
SPI to I2C i2c write function.
void spitoi2c_wake_up(spitoi2c_t *ctx)
SPI to I2C wake up function.
err_t spitoi2c_i2c_write_after_write(spitoi2c_t *ctx, uint8_t slave_addr, uint8_t *data_in1, uint8_t in1_len, uint8_t *data_in2, uint8_t in2_len)
SPI to I2C i2c write after write function.
err_t spitoi2c_init(spitoi2c_t *ctx, spitoi2c_cfg_t *cfg)
SPI to I2C initialization function.
void spitoi2c_read_buffer(spitoi2c_t *ctx, uint8_t *data_out, uint8_t len)
SPI to I2C read buffer function.
void spitoi2c_enable_device(spitoi2c_t *ctx)
SPI to I2C enable device function.
err_t spitoi2c_default_cfg(spitoi2c_t *ctx)
SPI to I2C default configuration function.
err_t spitoi2c_gpio_config(spitoi2c_t *ctx, uint8_t direction, uint8_t pin_mask)
SPI to I2C gpio gpio config function.
err_t spitoi2c_gpio_read(spitoi2c_t *ctx, uint8_t *gpio_data)
SPI to I2C gpio read function.
err_t spitoi2c_read_i2c_status(spitoi2c_t *ctx, uint8_t *i2c_stat)
SPI to I2C read i2c status function.
void spitoi2c_cfg_setup(spitoi2c_cfg_t *cfg)
SPI to I2C configuration object setup function.
err_t spitoi2c_i2c_read(spitoi2c_t *ctx, uint8_t slave_addr, uint8_t *data_out, uint8_t len)
SPI to I2C i2c read function.
err_t spitoi2c_gpio_write(spitoi2c_t *ctx, uint8_t gpio_data)
SPI to I2C gpio write function.
err_t spitoi2c_i2c_read_after_write(spitoi2c_t *ctx, uint8_t slave_addr, uint8_t *data_in, uint8_t in_len, uint8_t *data_out, uint8_t out_len)
SPI to I2C i2c read after write function.
void spitoi2c_disable_device(spitoi2c_t *ctx)
SPI to I2C disable device function.
err_t spitoi2c_read_version(spitoi2c_t *ctx, uint8_t *version)
SPI to I2C read version function.
err_t spitoi2c_read_register(spitoi2c_t *ctx, uint8_t reg, uint8_t *data_out)
SPI to I2C read register function.
spitoi2c_return_value_t
SPI to I2C Click return value data.
Definition spitoi2c.h:243
@ SPITOI2C_OK
Definition spitoi2c.h:244
@ SPITOI2C_ERROR
Definition spitoi2c.h:245
SPI to I2C Click configuration object.
Definition spitoi2c.h:225
pin_name_t sck
Definition spitoi2c.h:229
pin_name_t mosi
Definition spitoi2c.h:228
pin_name_t int_pin
Definition spitoi2c.h:234
pin_name_t miso
Definition spitoi2c.h:227
pin_name_t rst
Definition spitoi2c.h:233
pin_name_t cs
Definition spitoi2c.h:230
SPI to I2C Click context object.
Definition spitoi2c.h:207
digital_out_t cs
Definition spitoi2c.h:211
digital_out_t sck
Definition spitoi2c.h:210
digital_out_t mosi
Definition spitoi2c.h:209
digital_in_t miso
Definition spitoi2c.h:215
digital_in_t int_pin
Definition spitoi2c.h:216
digital_out_t rst
Definition spitoi2c.h:212